<?php

/**
 * Controlardor de gestión de usuarios
 *
 */
class controlador {

    /**
     * Método por defecto de entrada en la web
     */
    public function inicio() {
        if (!isset($_SESSION['weokey_publicidad_tipo_usuario'])) {
            //mostrar resumen de tarifas
            $obj_tarifa = new Tarifa();
            $array_tarifas = $obj_tarifa->get_tarifas_activas_completa();

            //controlamos si hay 3 o menos tarifas para mostrar
            if (count($array_tarifas) >= 3) {
                $disponibles = 3;
            } else {
                $disponibles = count($array_tarifas);
            }
            //cogemos 3 tarifas aleatorias para mostrar
            for ($i = 0; $i < $disponibles; $i++) {
                $pos = rand(0, count($array_tarifas) - 1); //posicion aleatoria del array de tarifas
                $params_tarifas[] = $array_tarifas[$pos]; //añadimos a params un elemento del array aleatorio
                unset($array_tarifas[$pos]); //eliminamos del array la tarifa para que no se repita
                $array_tarifas = array_values($array_tarifas); //reordenamos el array
            }

            require 'app/views/inicio_login.php';
            die();
        }

        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            header('location:comercial');
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('cliente')) {
            header('location:cliente');
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            header('location:administrador');
        }
    }

    /**
     * Funcion de login
     */
    public function login() {
        //Comprueba si es comercial
        $obj_usuario = new Comercial();
        if ($obj_usuario->comprobar_login_comerciales($_POST['email'], $_POST['password'])) {
            //Creamos la variable de sesión del usuario
            $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
            $_SESSION['weokey_publicidad_tipo_usuario'] = md5('comercial');
            //Obtenemos los datos del usuario y los metemos en variables de sesion
            if ($obj_usuario->get($_POST['email']) || $obj_usuario->get_by_usuario($_POST['email'])) {
                $_SESSION['weokey_publicidad_usuario_nombre'] = $obj_usuario->nombre . ' ' . $obj_usuario->apellidos;
                $_SESSION['weokey_publicidad_usuario_id'] = $obj_usuario->getId();
            }
            header('location:comercial');
        } else {
            //Comprueba si es cliente
            $obj_usuario = new Cliente();
            if ($obj_usuario->comprobar_login_clientes($_POST['email'], $_POST['password'])) {
                //variable de sesion
                $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
                $_SESSION['weokey_publicidad_tipo_usuario'] = md5('cliente');
                //Obtenemos los datos del usuario y los metemos en variables de sesion
                if ($obj_usuario->get($_POST['email']) || $obj_usuario->get_by_usuario($_POST['email'])) {
                    $_SESSION['weokey_publicidad_usuario_nombre'] = $obj_usuario->nombre . ' ' . $obj_usuario->apellidos;
                    $_SESSION['weokey_publicidad_usuario_id'] = $obj_usuario->getId();
                }
                header('location:cliente');
            } else {
                //Comprueba si es administrador
                $obj_usuario = new Administrador();
                if ($obj_usuario->comprobar_login_administrador($_POST['email'], $_POST['password'])) {
                    //Creamos la variable de sesión del usuario
                    $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
                    $_SESSION['weokey_publicidad_tipo_usuario'] = md5('administrador');
                    //Obtenemos los datos del usuario y los metemos en variables de sesion
                    if ($obj_usuario->get($_POST['email']) || $obj_usuario->get_by_usuario($_POST['email'])) {
                        $_SESSION['weokey_publicidad_usuario_nombre'] = $obj_usuario->nombre . ' ' . $obj_usuario->apellidos;
                        $_SESSION['weokey_publicidad_usuario_id'] = $obj_usuario->getId();
                    }
                    header('location:administrador');
                } else {
                    //Si no loguea, redirige con error
                    $_SESSION['publicidad_msj'] = "El usuario o contraseña introducido no es correcto";
                    header('location:inicio');
                }
            }
        }
    }

    /**
     * Método para ver el perfil del usuario
     */
    public function perfil() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            $obj_comercial = new Comercial();
            $obj_comercial->get_by_id($_SESSION['weokey_publicidad_usuario_id']);
            $template = 'template_comercial';
            require 'app/views/perfil_comercial.php';
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('cliente')) {
            $obj_cliente = new Cliente();
            $obj_cliente->get_by_id($_SESSION['weokey_publicidad_usuario_id']);
            $template = 'template_cliente';
            require 'app/views/perfil_cliente.php';
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_administrador = new Administrador();
            $obj_administrador->get_by_id($_SESSION['weokey_publicidad_usuario_id']);
            $template = 'template_administrador';
            require 'app/views/perfil_administrador.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Formulario de logout
     */
    public function logout() {
        session_destroy(); //Borra todas las variables de sesión
        header('location:inicio');
    }

}

?>